import http from '@/http'
export const userListApi = (params: IUserListParams): RES<IUserListModel> => http.get('/admin/list', { params })

export const switchUserStatusApi = (id: number, status: number): RES<number> =>
    http.post(`/admin/updateStatus/${id}?status=${status}`);

export const addUserApi = (params: IUserModel): RES<IUserModel> =>
    http.post("/admin/register", params);

export const getUserById = (id: number): RES<IUserModel> => http.get(`/admin/${id}`)

export const updateUser = (params: IUserModel): RES<number> => http.post(`/admin/update/${params.id}`, params)

export const getRoleListApi = (): RES<IRoleModel[]> => http.get('/role/listAll')

export const getRolesByUserId = (adminId: number): RES<IRoleModel[]> => http.get(`/admin/role/${adminId}`)

export const updateUserRolesApi = (id: number, ids: number[]): RES<number> => http.post(`/admin/role/update?adminId=${id}&roleIds=${ids.join(",")}`)

export const getUserRoleAPI = (adminId: number): RES<IRoleModel[]> =>
    http.get(`/admin/role/${adminId}`);
export const updateRoleAPI = (id: number, ids: number[]): RES<number> =>
    http.post(`/admin/role/update?adminId=${id}&roleIds=${ids}`);

export const RoleListAPI = (params: IUserListParams): RES<IRoleListModel> =>
    http.get(`/role/list`, { params });

export const switchRoleStatusAPI = (id: number, status: number): RES<number> =>
    http.post(`/role/updateStatus/${id}?status=${status}`);

export const editRoleAPI = (params: IRoleModel): RES<number> =>
    http.post(`/role/update/${params.id}`, params);

export const addRoleAPI = (params: IRoleModel): RES<IRoleModel> =>
    http.post("/role/create", params);

export const getRourceListByRoleIdApi = (
    roleId: number
): RES<IResourceModel[]> => http.get(`/role/listResource/${roleId}`);

export const resourceListAllApi = (): RES<IResourceModel[]> =>
    http.get("/resource/listAll");

export const resourceCategoryAllApi = (): RES<IResourceCategoryModel[]> =>
    http.get(`/resourceCategory/listAll`);

export const allocResourceApi = (paramas: allocResourcePramas) =>
    http.post(
        `/role/allocResource?roleId=${paramas.roleId
        }&resourceIds=${paramas.resourceIds.join(",")}`
    );

export const treeListApi = (): RES<ItreeMenu[]> => http.get("/menu/treeList");